﻿

using System;
using System.Threading.Tasks;
using System.Linq.Expressions;

using Oliving.Edge.IServices.BASE;
using Oliving.Edge.Model;
using Oliving.Edge.Model.Dto.User;

using Oliving.Edge.Model.Models.User;
using System.Collections.Generic;

namespace Oliving.Edge.IServices.User
{
    /// <summary>
    /// ISys_DeptServices , 
    /// </summary>	
    public interface ISys_DeptServices : IBaseServices<Sys_Dept>
    {


        /// <summary>
        /// 自定义分页查询
        /// </summary>
        /// <param name="whereExpression" > 查询条件</param>
        /// <param name="pageIndex" > 页码</param>
        /// <param name="pageSize" > 页大小</param>
        /// <param name="sortField" > 排序字段</param>
        /// <param name="sortOrder" > 排序 （asc/desc）</param>
        /// <returns></returns>
        Task<PageModel<Sys_DeptPageDto>> QueryPageList(
                Expression<Func<Sys_Dept, bool>> whereExpression,
                int PageIndex = 1,
                int PageSize = 20,
                string sortField = null,
                string sortOrder = null);

        Task<List<Sys_Dept_ComProPageDto>> GetList_ComPro(
                 Expression<Func<Sys_Dept, bool>> whereExpression,
                 string sortField = null, string sortOrder = null
         );

    }
}

